/***************************************
 * 图片 相关
 ***************************************/
$.extend($app, {
	//图片压缩
	getImgData: function(img, setSize, callBack) {
		var image = new Image(); //创建图片对象
		image.src = img + '?timeStamp=' + new Date(); //加时间戳解决跨域问题

		image.crossOrigin = 'anonymous'; //设置图片跨域访问
		image.setAttribute("crossOrigin",'anonymous');

		$app.loadingTran(); //显示透明转转层 以防冒泡

		//读取操作成功完成
		image.onload = function() {
			var degree = 0,
				drawWidth, drawHeight, width, height;
			drawWidth = this.naturalWidth;
			drawHeight = this.naturalHeight;
			//以下改变一下图片大小
			var maxSide = Math.max(drawWidth, drawHeight);

			//宽度 高度最大值为 setSize回调函数调用
			if (maxSide > setSize) {
				var minSide = Math.min(drawWidth, drawHeight);
				minSide = minSide / maxSide * setSize;
				maxSide = setSize;
				if (drawWidth > drawHeight) {
					drawWidth = maxSide;
					drawHeight = minSide;
				} else {
					drawWidth = minSide;
					drawHeight = maxSide;
				}
			}
			var canvas = document.createElement('canvas');
			canvas.width = width = drawWidth;
			canvas.height = height = drawHeight;
			var context = canvas.getContext('2d');


			//使用canvas旋转校正
			context.rotate(degree * Math.PI / 180);
			context.drawImage(this, 0, 0, drawWidth, drawHeight);
			//返回校正图片   jpg图片格式/压缩质量0~1,
			callBack(canvas.toDataURL("image/jpeg", 0.85));
			setTimeout(function() {
				$app.loading('hide');
			}, 100);
		}

	},
	/**
	 * 上传单张图片函数
	 **/
	fileImage: function(file, callBack) {

		/**
		 * 测试结果说明：Google，FF，IE都支持FileReader
		 * 但是IE9及以下浏览器不支持FileReader
		 */
		if (typeof FileReader == "undefined") {
			$app.browserCheck(1);
		} else {
			//如果有图片
			if (!!file) {
				$app.loading();
				var rFilter = /^(image\/jpeg|image\/png|image\/gif)$/i; // 检查图片格式 

				if (!rFilter.test(file.type)) {

					//隐藏弹框
					$app.loading('hide');
					$app.alert('请选择正确的图片格式');

				} else {
					//创建实例
					var reader = new FileReader();
					//异步读取文件内容
					reader.readAsDataURL(file);

					//读取操作成功完成
					reader.onload = function(e) {
						console.log(e)
						//输出图片 图片/图片设置宽度 px/输出图片函数
						$app.getImgData(e.target.result, 800, function(data) {
							//$app.loading('hide');
							//这里可以使用校正后的图片data了
							console.log('Base64图片 = ', data);
							callBack(data);
						});
					}
				}
			}
		}
	}
});
